var cities = [
    { cityId: 110100, name: "北京", pinyin: "beijing", isHot: 1 },
    { cityId: 120100, name: "天津", pinyin: "tianjin", isHot: 0 },
    { cityId: 130100, name: "石家庄", pinyin: "shijia", isHot: 0 },
    { cityId: 130200, name: "唐山", pinyin: "tangshan", isHot: 0 },
  ];
  
  let result = []; // 结果集合
  
  // 循环城市数据
  cities.forEach((city) => {
    // 1. 获取当前 city 的拼音首字母
    const groupName = city.pinyin.charAt(0).toUpperCase();
  
    // 2. 判断当前 groupName 在 result 中，是否已经有相关的对象了。
    const index = result.findIndex((item) => item.group === groupName);
    if (index > -1) {
      // 存在，就操作 result[index].children.push(city) 追加
      result[index].children.push(city);
    } else {
      // 不存在，就将当前 city 组装写入。
      result.push({
        group: groupName,
        children: [city],
      });
    }
  });
  
  console.log("result", result);